CDumpContext не имеет класса родителя. Он предназначен для вывода диагностической информации при отладке программы. Объект этого класса глобального уровня объвлен в MFC и имеет имя afxDump. Вообще отладочный контекст концептульно похож на поток ceer, а так же на обычный поток, так как можно использовать операции <<. Этот перегруженный оператор умеет выводить переменные в поток вывода отладчика.
void main()
{
CDumpContext cd;
cd << "Out debug contectst ";
}
Данный контекст обычно используют для передачи в функции CObject::Dump вывода информации о объекте. CDumpContext умеет выводить информацию о содержании многих классов MFC, например, CString, CTime и часть структур типа CPoint. Давайте посмотрим.
CString s("Hello ");
CPoint cp(23,23);
CDumpContext cd;
cd << s;
cd << cp;
-------------
Hello (23, 23)The thread 0xFFFC0769 has exited with code -2124201428 (0x8163422C).
The program 'E:\PROJECT\TestObject\Debug\TestObject.exe' has exited with code -2124201428 (0x8163422C).
Если Вы хотите использовать свой класс для вывода информации, то Вы должны породить его от CObject и перегрузить функцию Dump. Итак, выводить информацию в отладочный контекст можно двумя способами.
Отладочный контекст определен только в Debug версии, поэтому весь код связанный с контекстом необходимо отделять #ifdef _DEBUG .. #endif инструкциями. Вы можете определить свой отладочный контекст используя класс CFile. Давайте посмотрим ???
CFile dumpFile("discardme.txt",CFile::modeCreate | CFile::modeWrite);
if( !dumpFile )
{
afxDump << "File not create";
}
else
{
CString s("Hello file Dump ");
CDumpContext cd(&dumpFile);
cd << s;
}